<html>
<LINK REL="StyleSheet" HREF="../style.css" TYPE="text/css">
<a name = 'top'></a>
<h3>Enterprise Timesheet<br>
User Reference Manual</h3>

<table>
<tr><td colspan='2'>Design Concept
<tr><td>&nbsp &nbsp
	<td><a href='#concept'>Design Concept</a><br>
<tr><td colspan='2'>Daily Operation
<tr><td>&nbsp &nbsp
	<td><a href='#transactionlisting'>Transaction Listing</a><br>
		<a href='#timesheetentry'>Timesheet Entry</a><br>
		<a href='#billprinting'>Bill Printing</a><br>
		<a href='#writeofftransactions'>Write Off Transactions</a>
<tr><td colspan='2'>Master Setup
<tr><td>&nbsp &nbsp
	<td><a href='#clientmaster'>Client Master</a><br>
		<a href='#jobmaster'>Job Master</a><br>
		<a href='#chargetypemaster'>Charge Type Master</a><br>
		<a href='#companymaster'>Company Master</a><br>
		<a href='#staffmaster'>Staff Master</a><br>
		<a href='#chargeratemaster'>Charge Rate Master</a><br>
		<a href='#openperiodcontrol'>Open Period Control</a><br>
		<a href='#languagemaster'>Language Master</a>
<tr><td colspan='2'>Others
<tr><td>&nbsp &nbsp
	<td><a href='#accesslevel'>Language Master</a><br>
		<a href='#accesslevel'>Access Level</a>
</table>
<br><br><br>
<a name = 'concept'><b>Design Concept</b></a><br>
1. <a name='#companymaster'>This</a> program is designed to work on multiple companies environment<br>
   E.g. you own 2 different companies called<br> 
   i.  ABC system consultant Ltd and<br>
   ii. XYZ Associates Ltd.<br>
   Companies can be created using Company Master<br>
<a href='#top'>TOP</a><br><br>   
2. <a name='#clientmaster'>Your</a> clients can be created using Client Master<br>
   E.g. you have 2 clients called<br>
   i.  Client A<br>
   ii. Client B<br>
   Client Master is shared between companies, i.e once it has been created<br>
   it can be used for both companies.<br>
<a href='#top'>TOP</a><br><br>
3. <a name='#chargetypemaster'>Different</a> staff members work in different positions, therefore you need
   to create staff grading in Charge Type Master,
   so that diferent charge rates to clients for different staff grading.<br>
   E.g. <br>
   i.  MGR - manager<br>
   ii. TRA - trainee<br>
<a href='#top'>TOP</a><br><br>   
4. <a name='staffmaster'>You</a> can create staff members using Staff Master</a>
   and assign them a position created in <a href='#chargetypemaster'>Charge Type Master</a><br>
   E.g.<br>
   JOHN - MGR : John is a manager<br>
   PETER - TRA : Peter is a trainee<br>
   Like Client Master, Staff Master is shared between companies, i.e once 
   it has been created it can be used for both companies.<br>
   <br>
   The staff ID created also serves as an login ID for Enterprise Timesheet.<br>
<a href='#top'>TOP</a><br><br>   
5. You may also incur expenses for or on behalf of clients, such as filing fee,
   travelling expenses, photocopying charges. You need to create different 
   codes using also <a href='#chargetypemaster'>Charge Type Master</a> to uniquely identify
   these expenses.<br>
   E.g.<br>
   i.  TRAVEL - Travelling expenses<br>
   ii. PHOTO - Photocopying charges<br>
<a href='#top'>TOP</a><br><br>
6. <a name='#jobmaster'>Even</a> same customer may request different services from you,
   in order to identify them, you need to create job code using Job Master<br>
   E.g.<br>
   i.  AUDIT03 - audit for the year 2003<br>
   ii. TAX02 - tax filing for the yeart 2002<br>
<a href='#top'>TOP</a><br><br>
7. <a name='#chargeratemaster'>Once</a> you have designed codes for staff grading and expenses, you then
   assign prices to these codes using Charge Rate Master.<br>
   <br>
   Since charging rate may change through time, different company / client / job
   may also have different price on the same service charger, you can set prices 
   from the most general to the most specific.<br>
   <br>
   The logic of obtaining the price of a charge code is in the following priority :<br>
   0.  transaction must be dated on or after the effective date<br>
   1.  searching for price for the specific company + client + job,<br> 
   2.  if 1 is not found, search for specific company + client<br>
   3.  if 2 is not found, search for specific company + job<br>
   4.  if 3 is not found, search for specific company<br>
   5.  if 4 is not found, find charge code without specifying company, client and job ID<br>
   <br>
   E.g. You can set charge rate as follows :<br>
   i.  Charge Code    : PHOTO<br>
   	   Effective Date : 01 Jan 2003<br>
   	   Price          : 0.2<br>
   	   Company ID     : SAMP01<br>
   	   Client ID      : TEST<br>
   	   Job ID         : AUDIT03<br>
   	   <br>
   ii. Charge Code    : PHOTO<br>
   	   Effective Date : 01 Jan 2003<br>
   	   Price          : 0.5<br>
   	   Company ID     : SAMP01<br>
   	   Client ID      : TEST<br>
   	   <br>
   iii.Charge Code    : PHOTO<br>
   	   Effective Date : 01 Jan 2003<br>
   	   Price          : 0.3<br>
   	   Company ID     : SAMP01<br>
	   <br>
   iv. Charge Code    : PHOTO<br>
   	   Effective Date : 01 Jan 2003<br>
   	   Price          : 0.4<br>
<a href='#top'>TOP</a><br><br>  
8. <a name='#openperiodcontrol'>Time</a> slice is the minimum amount of time charged to clients<br>
   E.g. 15 minutes, 30 minutes, 1 hour<br>
   It has to be set up in Open Period Control<br>
   <br>
   In order to prevent staff members from entering wrong date
   of timesheet data, Open Period Control also controls
   the date range that allows staff members to enter timesheet / 
   expenses data
<a href='#top'>TOP</a><br><br>   
9. <a name = 'transactionlisting'>Once</a> the above have been created, you can now enter transactions<br>
   i.  For expenses incurred for or on behalf of client, it can be
       recorded using Transaction Listing<br>
	   It serves 2 functions :<br>
	   1. List of time and non-time related transactions<br>
	   2. Input of non-time related transactions<br>
	   
	   Non-time related transactions includes photocopy charges,
	   travelling expenses, etc. <br>
	   
   ii. <a name = 'timesheetentry'>For hours worked for client, it can be record 
	   using Timesheet Entry<br>
	   <br>
	   It is used to record time spent for each staff for each client
	   for different time period. Once the timesheet data has been billed
	   (i.e. invoice printed by program - Bill Printing)
	   or written off (i.e. marked as non-billable by program - 
	   Write Off Transaction), it cannot be modified except
	   invoice number / written off is cancelled.<br>
<a href='#top'>TOP</a><br><br>       
10.<a name='billprinting'>After</a> certain period, say at the end of a month, you
   need to print invoice using Bill Printing in order to the bill clients.<br>
   <br>
   Please aware the fact that invoice format is unique to a company,
   therefore the invoice printed by this program mostly likely does
   not fit your invoice papaer. The purpose of this program serves
   just as a skelton for you to change it to adopt the format of your 
   invoice.<br>
   <br>
   Due to the limitation of html language, there is no page break of
   the html output. Therefore if printing results include multiple
   invoices for multiple companies of multiple clients, you need to 
   select the appropriate portion of the html output to print each 
   invoice.<br>
   <br>
   We aware that PHP language can create pdf format which certainly
   be a good way to print invoice, but most PHP distribution does 
   not compiled with this functions and the pdf addon is not free for
   commerical use, therefore we do not intend to support it at
   this moment.<br>
<a href='#top'>TOP</a><br><br>   
11.<a name='writeofftransactions'>Finally</a>, staff members may work on some tasks which is not billable
   to clients, such as pre-sales task which has to be recorded for
   performance measure purpose, you can write off them using 
   Write Off Transactions. Once those tasks has been 
   written off, it will not be selected for invoice printing.<br>
<a href='#top'>TOP</a><br><br>

<a name = 'languagemaster'><b>Language Master</b></a><br>
The language files are located in /timeshet/language directory.<br>
To create a new language interface, follow the steps below :<br>
1.  copy /timesheet/language/english.php to /timesheet/language/yourlanguage.php<br>
2.  put your translation in yourlanguage.php<br>
3.  add the language code using this program<br>
<a href='#top'>TOP</a><br><br>

<a name = 'accesslevel'><b>Access Level</b></a><br>
Level 1 - controller<br>
- capable to access all functions of the system<br>
<br>
Level 2 - manager<br>
- cannot perform the followings :<br>
  i.	change 'Enable' status in staff master<br>
  ii.	select other users in staff master<br>
<br>  
- cannot run the following program :<br>
  i.	company master<br>
  ii.	charge rate master<br>
  iii.	open period control<br>
  iv.	language master<br>
<br>  
Level 3 - normal user<br>
- inherit the same restrictions as Level 2 and the followings :<br>
<br>
- cannot perform the followings :<br>
  i.	cannot view transactions of other users in program - Transaction List<br>
  ii.	cannot input timesheet for other users in program - Timesheet Entry<br>
<br>  
- cannot run the following program :<br>
  i.	bill printing<br>
  ii.	write off transaction<br>
<a href='#top'>TOP</a><br><br>